package writtenTraining.day32;

import java.util.*;

/**
 * day32:(1)模拟 + 数学：BC157 素数回文
 */

public class Main {
    public static void main(String[] args) {
        // 模拟 + 数学
        // 输入数据
        Scanner in = new Scanner(System.in);
        String str = in.next();
        int len = str.length();
        // 追加
        for(int i = len - 2; i >= 0 ; i--) {
            str += str.charAt(i);
        }

        // 转化为数字
        len = str.length();
        long num = 0;
        // 累乘相加
        for(int i = 0; i < len; i++) {
            long tmp = (long)(str.charAt(i) - '0');
            num = (num * 10) + tmp; 
        }

        // 判断是否是素数
        if(check(num)) {
            System.out.println("prime");
        } else {
            System.out.println("noprime");
        }
    }

    private static boolean check(long num) {
        for(int i = 2; i <= Math.sqrt(num); i++) {
            if(num % i == 0) {
                return false;
            }
        }

        return true;
    } 
}


/**
 * day32:(2)分类讨论 + 并集 + 交集 + 贪心：AB31 活动安排
 */


 class Main1 {
    public static void main(String[] args) {
        // 分类讨论 + 并集 + 交集 + 贪心

        // 输入数据
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();


        Long[][] time = new Long[n][2];
        for(int i = 0; i < n; i++) {
            time[i][0] = in.nextLong();
            time[i][1] = in.nextLong();
        }
        // 排序
        Arrays.sort(time,(a,b)->a[0].compareTo(b[0]));

        int ret = 1;
        long left = time[0][0], right = time[0][1];
        for(int i = 1; i < n; i++) {
            if(time[i][0] >= right) {
                // 取并集
                left = time[i][0];
                right = time[i][1];
                ret++;
            } else {
                // 取交集
                if(time[i][0] > left) {
                    left = time[i][0];
                }

                if(time[i][1] < right) {
                    right = time[i][1];
                }
            }
        }

        // 输出结果
        System.out.println(ret);
    }
}


/**
 * day32:(3)动态规划 + 区间dp:WY6 合唱团
 */


class Main3 {

    public static final long INF = 0x3f3f3f3f3f3f3f3fL;
    public static void main(String[] args) {
        // 动态规划 + 区间dp
        // 输入数据
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();

        long[] nums = new long[n + 1];
        for (int i = 1; i <= n; i++) {
            nums[i] = in.nextLong();
        }
        int k = in.nextInt(), d = in.nextInt();

        // 创建dp
        long[][] maxDp = new long[n + 1][k + 1];
        long[][] minDp = new long[n + 1][k + 1];

        for(int i = 0; i <= n; i++) {
            maxDp[i][0] = minDp[i][0] = 1;
        }

        // 填表
        for (int i = 1; i <= n; i++) {
            // 初始化
            // 第一个先填自己的长度
            // 记住这里从 2 开始
            for (int j = 1; j <= k; j++) {
                // 结果初始化
                maxDp[i][j] = -INF;
                minDp[i][j] = INF;
                for (int prev = Math.max(i - d, j - 1) ; prev < i ; prev++) {
                    // 更新最小值和最大值
                    // 利用三种中的最小值和最大值就不需要分类讨论
                    maxDp[i][j] = Math.max(Math.max(minDp[prev][j - 1] * nums[i],
                            maxDp[prev][j - 1] * nums[i]), maxDp[i][j]);
                    minDp[i][j] = Math.min(Math.min(minDp[prev][j - 1] * nums[i],
                            maxDp[prev][j - 1] * nums[i]), minDp[i][j]);
                }

            }
        }
        long ret = -INF;
        // 确定返回值（k ~ n 个位置之中）
        for (int i = k ; i <= n ; i++) {
            ret = Math.max(maxDp[i][k], ret);
        }

        // 输出结果
        System.out.println(ret);
    }

}